// class Person {
//
//     type:String;
//     id:Number;
//     name: string = 'jeskson';
//     cname='13131';
//     static age: number = 18;
//     // readonly开头的属性表示一个只读的属性
//     constructor(type:String,id:Number) {
//         this.type=type;
//         this.id=id;
//
//     }
//     say(){
//         console.log(1111111111)
//         return this.id
//     }
//
//
// }
//
// abstract class Animal{
//     name: string;
//
//     constructor(name: string) {
//         this.name = name;
//     }
//
//     // 定义一个抽象方法
//     // 抽象方法使用abstract开头，没有方法体
//     // 抽象方法只能定义在抽象类中，子类必须对抽象方法进行重写
//     abstract sayHello():void;
// }
//
// class smPer extends Person{
//      ccname:String='313113';
//     constructor(name:String,ss:Number) {
//         super(name,ss);
//         this.ccname=name
//     }
//     print(){
//         console.log(this,super.id)
//     }
// }
// const news=new smPer('cccccccccc',333333333333);
// news.print()
// //
// // console.log(Person.age)
// // const per = new Person('ts',4545);
// // console.log(per)
// // const per2 = new Person('es',5555);
// // console.log(per2)
// // console.log(per);
// // console.log(per.name, per.age);
//
//
// // 不加static，实例对象调用
// // 定义static，类方法或属性

const a=1;
{
    // console.log(a)
    const a=2;
    console.log(a)
}
console.log(a)





// (function(){
//     // 描述一个对象的类型
//     type myType = {
//         name: string,
//         age: number
//     };
//
//     // 接口用来定义一个类结构
//     // 用来定义一个类中应该包含哪些属性和方法
//     // 同时接口也可以当成类型声明去使用
//
//     interface myInterface{
//         name: string;
//         age: number;
//     }
//
//     interface myInterface{
//         gender: string;
//     }
//
//     // const obj: myType = {
//     //     name: 'dada',
//     //     age: 1
//     // };
//
//     const obj1: myInterface = {
//         name: 'dada',
//         age: 1,
//         gender: '男'
//     };
//     console.log(typeof obj1)
// })();
